/***
 * 0. 还未实现
 * 1. 原型链继承会共享数据
 * 2. 构造函数继承会得不到父亲的原型属性和原型方法这样
 * 3. 组合继承，是上面两种方式的组合使用
 */
function _possibleConstructorReturn(self, call) {
  // ...
  return call && (typeof call === "object" || typeof call === "function")
    ? call
    : self;
}
function _inherits(subClass, superClass) {
  // 这里可以看到
  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true,
    },
  });
  if (superClass)
    Object.setPrototypeOf
      ? Object.setPrototypeOf(subClass, superClass)
      : (subClass.__proto__ = superClass);
}

// let Parent = function Parent(
//   _classCallCheck(this, Parent)
// )
